﻿/// Write a program that finds the sequence of maximal sum in given array. 
/// Example:	{2, 3, -6, -1, 2, -1, 6, 4, -8, 8}  {2, -1, 6, 4}




//using System;

//class SequenceOfMaxSum
//{
//    static void Main()
//    {
//        int[] array = { -6, -1, 2, -1, 6, 4, 2, 3, -8, 8 };

//        int max = array[0];
//        int maxEnd = array[0];
//        int longSequence = 1;
//        int currentSequence = 1;
//        int start = 0;
//        int startTemp = 0;

//        for (int i = 1; i < array.Length; i++)
//        {
//            if (array[i] + maxEnd > array[i])
//            {
//                maxEnd = array[i] + maxEnd;
//                currentSequence++;
//            }

//            else
//            {
//                maxEnd = array[i];
//                startTemp = i;
//                currentSequence = 1;
//            }

//            if (maxEnd > max)
//            {
//                max = maxEnd;
//                longSequence = currentSequence;
//                start = startTemp;
//            }
//        }

//        Console.WriteLine(max);

//        for (int i = start; i < start + longSequence; i++)
//        {
//            Console.Write(array[i] + " ");
//        }
//    }
//}






using System;

class zad8
{
    static void Main()
    {
        int[] arr = { 2, -1, 6, 4, 2, 3, -6, -1, -8, 8 };

        int sum = 0;
        int bestSum = 0;
        int startIndex = 0;
        int endIndex = 0;
        int lenght = arr.Length;

        for (int i = 0; i < lenght; i++)
        {
            for (int j = i; j < lenght; j++)
            {
                sum += arr[j];

                if (bestSum <= sum)
                {
                    bestSum = sum;
                    startIndex = i;
                    endIndex = j;
                }
            }
            sum = 0;
        }

        Console.WriteLine(bestSum);
        //Console.WriteLine(startIndex + " " + endIndex);

        for (int i = startIndex; i <= endIndex; i++)
        {
            Console.Write(arr[i] + " ");
        }

    }
}
